from langchain_core.prompts import (
    PromptTemplate,
    ChatPromptTemplate,
    HumanMessagePromptTemplate,
    MessagesPlaceholder
)

from datetime import datetime

prompt = PromptTemplate.from_template("请讲一个关于{subject}的冷笑话")
prompt_value = prompt.invoke({"subject": "喜剧演员"})
print(prompt_value.to_string())
print(prompt_value.to_messages())

chat_prompt = ChatPromptTemplate.from_messages([
    ("system", "你是个AI机器人，根据用户的提问回答，当前时间为：{now}"),
    MessagesPlaceholder("chat_history"),
    HumanMessagePromptTemplate.from_template("请讲一个关于{subject}的冷笑话")
]).partial(now=datetime.now().strftime("%Y-%m-%d %H:%M:%S"))

print("=================================")

chat_prompt_value = chat_prompt.invoke({
    # 被替换成上面的 partial(now=datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
    # "now": datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
    "chat_history": [("human", "木木木木木木")],
    "subject": "喜剧演员"
})

print(chat_prompt_value.to_string())
